export interface CourseDTO {
  title?: string
  subjectId?: string
  subjectPid?: string
}

export interface Course extends BaseEntity {
  courseId?: string
  teacherId?: string
  subjectId?: string
  subjectPid?: string
  title: string
  price: number
  description?: string
  lessonNum?: number
  coverUrl?: string
  buyCount?: number
  viewCount?: number
  status: string
  delFlag: string
}

export interface SectionVo {
  sectionId?: string
  courseId: string
  chapterId: string
  title: string
  videoId?: string
  sort?: number
  videoUrl?: string
  objectKey: string
  bucketName: string
}

export interface ChapterVO {
  chapterId: string
  courseId: string
  title: string
  sort: number
  sections: SectionVo[]
}

export interface CommentVO extends BaseEntity {
  commentId: string
  pid: string
  content: string
  courseId: string
  userId: string
  username: string
  avatar: string
  children: CommentVO[]
}

export interface CourseVO extends BaseEntity {
  courseId?: string
  teacherId?: string
  subjectId?: string
  subjectPid?: string
  title: string
  price: number
  description?: string
  lessonNum?: number
  coverUrl?: string
  buyCount?: number
  viewCount?: number
  status: string
  delFlag: string
  commentCount: number
  teacherAvatar?: string
  teacherName?: string
  teacherLevel?: string
  teacherIntro?: string
  chapterInfoVOS: ChapterVO[]
  commentVOS: CommentVO[]
}
